import request from '@/config/axios'

// 采购计划 VO
export interface PurchasePlanVO {
  id: number // 主键
  planName: string // 采购计划名称
  planNo: string // 采购计划编号(系统自动生成)
  purchaseType: string // 采购类型SERVICE/EQUIPMENT/ENGINEERING/MATERIAL/DIRECT/MINOR
  budgetDepartmentId: number // 预算归属部门ID
  budgetDepartmentName: string // 预算归属部门名称
  applicationDepartmentId: number // 需求申请部门ID
  applicationDepartmentName: string // 需求申请部门名称
  applicantId: number // 需求申请人ID
  applicantName: string // 需求申请人姓名
  projectName: string // 项目名称
  purchaseMethod: string // 采购方式
  warrantyPeriod: string // 质保期/维保期
  originalContractStartTime: Date // 原合同期限开始时间
  originalContractEndTime: Date // 原合同期限结束时间
  originalContractAmount: number // 原合同金额(万元)
  contractPerformance: string // 合同履约情况
  estimatedPriceSource: string // 本次采购预估单价来源说明
  requiredDeliveryTime: Date // 需到货时间
  constructionPeriod: string // 施工工期描述
  constructionStartTime: Date // 施工工期开始时间
  constructionEndTime: Date // 施工工期结束时间
  constructionLeader: string // 施工期间负责人
  hasNonStandardParts: boolean // 是否含有非标配件(0-否 1-是)
  hasProvisionalSum: boolean // 是否含暂列金(0-否 1-是)
  implementationTeam: string // 实施小组组成及分工
  negotiationMethod: string // 谈判报价方式
  supplierSelectionPrinciple: string // 供应商选择原则
  projectReason: string // 项目理由及必要性说明
  remark: string // 备注说明
  applicationStartTime: Date // 采购申请开始时间
  applicationEndTime: Date // 采购申请结束时间
}

// 采购计划 API
export const PurchasePlanApi = {
  // 查询采购计划分页
  getPurchasePlanPage: async (params: any) => {
    return await request.get({ url: `/erp/purchase-plan/page`, params })
  },

  // 查询采购计划详情
  getPurchasePlan: async (id: number) => {
    return await request.get({ url: `/erp/purchase-plan/get?id=` + id })
  },

  // 新增采购计划
  createPurchasePlan: async (data: PurchasePlanVO) => {
    return await request.post({ url: `/erp/purchase-plan/create`, data })
  },

  // 修改采购计划
  updatePurchasePlan: async (data: PurchasePlanVO) => {
    return await request.put({ url: `/erp/purchase-plan/update`, data })
  },

  // 删除采购计划
  deletePurchasePlan: async (id: number) => {
    return await request.delete({ url: `/erp/purchase-plan/delete?id=` + id })
  },

  // 导出采购计划 Excel
  exportPurchasePlan: async (params) => {
    return await request.download({ url: `/erp/purchase-plan/export-excel`, params })
  },
}